package com.gopay.common.domain.cbrmb.customs.base;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import com.gopay.common.constants.cbrmb.customs.NameSpace;

/**
 * 
 * @ClassName: OrderHead
 * @Description: 电子订单表头实体
 * @author gd.cui
 * @date 2017年1月14日 上午10:46:45
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "guid", "appType", "appTime", "appStatus", "orderType", "orderNo", "ebpCode",
		"ebpName", "ebcCode", "ebcName", "goodsValue", "freight", "discount", "taxTotal", "acturalPaid", "currency",
		"buyerRegNo", "buyerName", "buyerIdType", "buyerIdNumber", "payCode", "payName", "payTransactionId",
		"batchNumbers", "consignee", "consigneeTelephone", "consigneeAddress", "consigneeDitrict", "note" })
@XmlRootElement(name = "OrderHead", namespace = NameSpace.NAMESPACE_CEB_URI)
public class OrderHead {

	@XmlElement(name = "guid", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String guid;

	/**
	 * 企业报送类型。1-新增 2-变更 3-删除。默认为1
	 */
	@XmlElement(name = "appType", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String appType;

	/**
	 * 企业报送时间。格式:YYYYMMDDhhmmss。
	 */
	@XmlElement(name = "appTime", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String appTime;

	/**
	 * 业务状态:1-暂存,2-申报,默认为2。
	 */
	@XmlElement(name = "appStatus", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String appStatus;

	/**
	 * 电子订单类型：I进口
	 */
	@XmlElement(name = "orderType", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String orderType;

	/**
	 * 交易平台的订单编号，同一交易平台的订单编号应唯一。订单编号长度不能超过60位。
	 */
	@XmlElement(name = "orderNo", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String orderNo;

	/**
	 * 电商平台的海关注册登记编号；电商平台未在海关注册登记，由电商企业发送订单的，以中国电子口岸发布的电商平台标识编号为准。
	 */
	@XmlElement(name = "ebpCode", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String ebpCode;

	/**
	 * 电商平台的海关注册登记名称；电商平台未在海关注册登记，由电商企业发送订单的，以中国电子口岸发布的电商平台名称为准。
	 */
	@XmlElement(name = "ebpName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String ebpName;

	/**
	 * 电商企业的海关注册登记编号。
	 */
	@XmlElement(name = "ebcCode", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String ebcCode;

	/**
	 * 电商企业的海关注册登记名称。
	 */
	@XmlElement(name = "ebcName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String ebcName;

	/**
	 * 商品实际成交价，含非现金抵扣金额。
	 */
	@XmlElement(name = "goodsValue", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String goodsValue;

	/**
	 * 不包含在商品价格中的运杂费，无则填写"0"。
	 */
	@XmlElement(name = "freight", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String freight;

	/**
	 * 使用积分、虚拟货币、代金券等非现金支付金额，无则填写"0"。
	 */
	@XmlElement(name = "discount", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String discount;

	/**
	 * 企业预先代扣的税款金额，无则填写“0”
	 */
	@XmlElement(name = "taxTotal", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String taxTotal;

	/**
	 * 商品价格+运杂费+代扣税款-非现金抵扣金额，与支付凭证的支付金额一致。
	 */
	@XmlElement(name = "acturalPaid", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String acturalPaid;

	/**
	 * 限定为人民币，填写“142”。
	 */
	@XmlElement(name = "currency", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String currency;

	/**
	 * 购人的交易平台注册号
	 */
	@XmlElement(name = "buyerRegNo", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String buyerRegNo;

	/**
	 * 订购人的真实姓名。
	 */
	@XmlElement(name = "buyerName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String buyerName;

	/**
	 * 1-身份证,2-其它。限定为身份证，填写“1”。
	 */
	@XmlElement(name = "buyerIdType", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String buyerIdType;

	/**
	 * 订购人的身份证件号码
	 */
	@XmlElement(name = "buyerIdNumber", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String buyerIdNumber;

	/**
	 * 支付企业的海关注册登记编号。
	 */
	@XmlElement(name = "payCode", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String payCode;
	/**
	 * 支付企业在海关注册登记的企业名称。
	 */
	@XmlElement(name = "payName", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String payName;

	/**
	 * 支付企业唯一的支付流水号。
	 */
	@XmlElement(name = "payTransactionId", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String payTransactionId;

	/**
	 * 商品批次号
	 */
	@XmlElement(name = "batchNumbers", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String batchNumbers;

	/**
	 * 收货人姓名，必须与电子运单的收货人姓名一致。
	 */
	@XmlElement(name = "consignee", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String consignee;

	/**
	 * 收货人联系电话，必须与电子运单的收货人电话一致。
	 */
	@XmlElement(name = "consigneeTelephone", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String consigneeTelephone;

	/**
	 * 收货地址，必须与电子运单的收货地址一致。
	 */
	@XmlElement(name = "consigneeAddress", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String consigneeAddress;

	/**
	 * 参照国家统计局公布的国家行政区划标准填制。
	 */
	@XmlElement(name = "consigneeDitrict", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String consigneeDitrict;

	/**
	 * 备注
	 */
	@XmlElement(name = "note", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String note;

	public String getGuid() {
		return guid;
	}

	public void setGuid(String guid) {
		this.guid = guid;
	}

	public String getAppType() {
		return appType;
	}

	public void setAppType(String appType) {
		this.appType = appType;
	}

	public String getAppTime() {
		return appTime;
	}

	public void setAppTime(String appTime) {
		this.appTime = appTime;
	}

	public String getAppStatus() {
		return appStatus;
	}

	public void setAppStatus(String appStatus) {
		this.appStatus = appStatus;
	}

	public String getOrderType() {
		return orderType;
	}

	public void setOrderType(String orderType) {
		this.orderType = orderType;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getEbpCode() {
		return ebpCode;
	}

	public void setEbpCode(String ebpCode) {
		this.ebpCode = ebpCode;
	}

	public String getEbpName() {
		return ebpName;
	}

	public void setEbpName(String ebpName) {
		this.ebpName = ebpName;
	}

	public String getEbcCode() {
		return ebcCode;
	}

	public void setEbcCode(String ebcCode) {
		this.ebcCode = ebcCode;
	}

	public String getEbcName() {
		return ebcName;
	}

	public void setEbcName(String ebcName) {
		this.ebcName = ebcName;
	}

	public String getGoodsValue() {
		return goodsValue;
	}

	public void setGoodsValue(String goodsValue) {
		this.goodsValue = goodsValue;
	}

	public String getFreight() {
		return freight;
	}

	public void setFreight(String freight) {
		this.freight = freight;
	}

	public String getDiscount() {
		return discount;
	}

	public void setDiscount(String discount) {
		this.discount = discount;
	}

	public String getTaxTotal() {
		return taxTotal;
	}

	public void setTaxTotal(String taxTotal) {
		this.taxTotal = taxTotal;
	}

	public String getActuralPaid() {
		return acturalPaid;
	}

	public void setActuralPaid(String acturalPaid) {
		this.acturalPaid = acturalPaid;
	}

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}

	public String getBuyerRegNo() {
		return buyerRegNo;
	}

	public void setBuyerRegNo(String buyerRegNo) {
		this.buyerRegNo = buyerRegNo;
	}

	public String getBuyerName() {
		return buyerName;
	}

	public void setBuyerName(String buyerName) {
		this.buyerName = buyerName;
	}

	public String getBuyerIdType() {
		return buyerIdType;
	}

	public void setBuyerIdType(String buyerIdType) {
		this.buyerIdType = buyerIdType;
	}

	public String getBuyerIdNumber() {
		return buyerIdNumber;
	}

	public void setBuyerIdNumber(String buyerIdNumber) {
		this.buyerIdNumber = buyerIdNumber;
	}

	public String getPayCode() {
		return payCode;
	}

	public void setPayCode(String payCode) {
		this.payCode = payCode;
	}

	public String getPayName() {
		return payName;
	}

	public void setPayName(String payName) {
		this.payName = payName;
	}

	public String getPayTransactionId() {
		return payTransactionId;
	}

	public void setPayTransactionId(String payTransactionId) {
		this.payTransactionId = payTransactionId;
	}

	public String getBatchNumbers() {
		return batchNumbers;
	}

	public void setBatchNumbers(String batchNumbers) {
		this.batchNumbers = batchNumbers;
	}

	public String getConsignee() {
		return consignee;
	}

	public void setConsignee(String consignee) {
		this.consignee = consignee;
	}

	public String getConsigneeTelephone() {
		return consigneeTelephone;
	}

	public void setConsigneeTelephone(String consigneeTelephone) {
		this.consigneeTelephone = consigneeTelephone;
	}

	public String getConsigneeAddress() {
		return consigneeAddress;
	}

	public void setConsigneeAddress(String consigneeAddress) {
		this.consigneeAddress = consigneeAddress;
	}

	public String getConsigneeDitrict() {
		return consigneeDitrict;
	}

	public void setConsigneeDitrict(String consigneeDitrict) {
		this.consigneeDitrict = consigneeDitrict;
	}

	public String getNote() {
		return note;
	}

	public void setNote(String note) {
		this.note = note;
	}

}
